@article{archinal2018,
  author    = {Archinal, B. and A’hearn, M. and Conrad, Al and Consolmagno, Guy and Hestroffer, D. and Hilton, James and Krasinsky, G. and Neumann, G. and Oberst, Jürgen and Ping, J. and Seidelmann, P. and Tholen, David and Thomas, P. and Williams, Iwan},
  title     = {Report of the IAU Working Group on Cartographic Coordinates and Rotational Elements: 2015},
  journal   = {Celestial Mechanics and Dynamical Astronomy},
  year      = {2018},
  volume    = {130},
  number    = {22},
  doi       = {10.1007/s10569-017-9805-5}
}

@article{BarItzhack2000,
  author    = {Itzhack Yoav Bar-Itzhack},
  title     = {New method for Extracting the Quaternion from a Rotation Matrix},
  journal   = {Journal of Guidance, Control, and Dynamics},
  volume    = {23},
  number    = {6},
  pages     = {1085--1087},
  year      = {2000},
  publisher = {American Institute of Aeronautics and Astronautics},
  doi       = {10.2514/2.4654}
}

@article{black1964,
  author    = {Black, Harold D.},
  title     = {A passive system for determining the attitude of a satellite},
  journal   = {AIAA Journal},
  volume    = {2},
  number    = {7},
  pages     = {1350-1351},
  year      = {1964},
  doi       = {10.2514/3.2555}
}

@article{cardoso2009,
  author    = {Cardoso, João R. and Silva Leite, F.},
  title     = {Exponentials of skew-symmetric matrices and logarithms of orthogonal matrices},
  journal   = {Journal of Computational and Applied Mathematics},
  volume    = {233},
  number    = {11},
  year      = {2009},
  month     = {04},
  pages     = {2867--2875},
  doi       = {10.1016/j.cam.2009.11.032}
}

@article{chambat2001,
  author    = {Chambat, Frédéric and Valette, Bernard},
  title     = {Mean radius, mass, and inertia for reference Earth models},
  journal   = {Physics of the Earth and Planetary Interiors},
  volume    = {124},
  number    = {3--4},
  pages     = {237--253},
  year      = {2001},
  doi       = {10.1016/S0031-9201(01)00200-X}
}

@article{Chiaverini1999,
  author    = {Chiaverini, Stefano and Siciliano, Bruno},
  year      = {1999},
  month     = {05},
  pages     = {45-60},
  title     = {The Unit Quaternion: A Useful Tool for Inverse Kinematics of Robot Manipulators},
  volume    = {35},
  journal   = {Systems Analysis Modelling Simulation}
}

@techreport{chulliat2020,
  author      = {Chulliat, A. and Brown, W. and Alken, P. and Beggan, C. and Nair, M. and Cox, G. and Woods, A. and Macmillan, S. and Meyer, B. and M. Paniccia},
  title       = {The US/UK World Magnetic Model for 2020-2025 : Technical Report},
  institution = {National Centers for Environmental Information, NOAA},
  year        = {2020},
  doi         = {10.25923/ytk1-yx35},
  url         = {https://repository.library.noaa.gov/view/noaa/24390/noaa_24390_DS1.pdf},
  address     = {United States; Great Britain},
  annote      = {Public Domain},
  type        = {PDF-29.84 MB},
}

@book{curtis2014,
  author    = {Curtis, Howard D.},
  title     = {Orbital Mechanics for Engineering Students},
  year      = {2014},
  edition   = {3},
  publisher = {Elsevier Ltd},
  isbn      = {978-0-08-097747-8},
  doi       = {10.1016/C2011-0-69685-1}
}

@techreport{dantam2014,
  author      = {Dantam, Neil},
  title       = {Quaternion Computation},
  institution = {Institute for Robotics and Intelligent Machines. Georgia Institute of Technology},
  year        = {2002},
  url         = {http://www.neil.dantam.name/note/dantam-quaternion.pdf}
}

@techreport{davenport1968,
  title       = {A Vector Approach to the Algebra of Rotations with Applications},
  author      = {Davenport, Paul B.},
  series      = {NASA technical note},
  institution = {Goddard Space Flight Center},
  url         = {https://ntrs.nasa.gov/citations/19680021122},
  year        = {1968},
  month       = {08},
  publisher   = {National Aeronautics and Space Administration}
}

@techreport{diebel2006,
  author    = {Diebel, James},
  year      = {2006},
  month     = {10},
  title     = {Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors},
  institute = {Stanford University},
  url       = {https://www.astro.rug.nl/software/kapteyn-beta/_downloads/attitude.pdf}
}

@techreport{eberly2002,
  title       = {Quaternion Algebra and Calculus},
  author      = {Eberly, David H.},
  institution = {Magic Software, Inc.},
  year        = {2002},
  url         = {https://www.sci.utah.edu/~jmk/papers/Quaternions.pdf}
}

@InProceedings{euston2008,
  author    = {Euston, Mark and Coote, Paul and Mahony, Robert and Kim, Jonghyuk and Hamel, Tarek},
  booktitle = {2008 IEEE/RSJ International Conference on Intelligent Robots and Systems},
  title     = {A complementary filter for attitude estimation of a fixed-wing UAV},
  year      = {2008},
  pages     = {340-345},
  keywords  = {Low pass filters;Acceleration;Atmospheric modeling;Unmanned aerial vehicles;Vehicles;Global positioning system;Airplanes},
  doi       = {10.1109/IROS.2008.4650766}
}

@techreport{fisher2010,
  author      = {Fisher, Christopher J.},
  title       = {Using an Accelerometer for Inclination Sensing},
  institution = {Analog Devices, Inc},
  year        = {2010},
  month       = {},
  number      = {AN-1057},
  note        = {},
  url         = {https://www.analog.com/en/resources/app-notes/an-1057.html},
  address     = {},
  annote      = {},
  type        = {},
}

@article{fourati2011,
  author    = {Fourati, Hassen and Manamanni, Noureddine and Afilal, Lissan and Handrich, Yves},
  title     = {A Nonlinear Filtering Approach for the Attitude and Dynamic Body Acceleration Estimation Based on Inertial and Magnetic Sensors: Bio-Logging Application},
  year      = {2011},
  volume    = {09},
  number    = {15},
  pages     = {233-244},
  keywords  = {Estimation;Nonlinear filters;Magnetometers;Gyroscopes;Accelerometers;Magnetic separation;Quaternions;Attitude;bio-logging;complementary nonlinear filter;dynamic body acceleration (DBA);inertial measurement unit (MTi-G);MEMS inertial/magnetic sensors},
  journal   = {IEEE Sensors Journal},
  doi       = {10.1109/JSEN.2010.2053353},
  url       = {https://hal.science/hal-00624142}
}

@misc{garcia2022,
  author       = {Garcia, Mario},
  title        = {Angular Velocity from Quaternions},
  howpublished = {\url{https://mariogc.com/post/angular-velocity-quaternions/}},
  year         = {2022},
  note         = {Accessed: 2024-09-27}
}

@techreport{grosskatthoefer2012,
  title       = {Introduction into quaternions for spacecraft attitude representation},
  author      = {Großekatthöfer, Karsten},
  institution = {Department of Astronautics and Aeronautics. Technical University of Berlin},
  year        = {2012},
  month       = {05},
  day         = {31},
  url         = {https://argos.vu/wp-content/uploads/2017/01/Quaternions-1.pdf}
}

@article{guo2017,
  author    = {Guo, Siwen and Wu, Jin and Wang, Zuocai and Qian, Jide},
  title     = {Novel MARG-Sensor Orientation Estimation Algorithm Using Fast Kalman Filter},
  journal   = {Journal of Sensors},
  volume    = {2017},
  number    = {1},
  doi       = {10.1155/2017/8542153},
  url       = {https://onlinelibrary.wiley.com/doi/abs/10.1155/2017/8542153},
  abstract  = {Orientation estimation from magnetic, angular rate, and gravity (MARG) sensor array is a key problem in mechatronic-related applications. This paper proposes a new method in which a quaternion-based Kalman filter scheme is designed. The quaternion kinematic equation is employed as the process model. With our previous contributions, we establish the measurement model of attitude quaternion from accelerometer and magnetometer, which is later proved to be the fastest (computationally) one among representative attitude determination algorithms of such sensor combination. Variance analysis is later given enabling the optimal updating of the proposed filter. The algorithm is implemented on real-world hardware where experiments are carried out to reveal the advantages of the proposed method with respect to conventional ones. The proposed approach is also validated on an unmanned aerial vehicle during a real flight. Results show that the proposed one is faster than any other Kalman-based ones and even faster than some complementary ones while the attitude estimation accuracy is maintained.},
  year      = {2017}
}

@book{hall2000,
  author = {Hall, Christopher D.},
  title = {Spacecraft Attitude Dynamics and Control},
  editor = {},
  publisher = {},
  year = {2000},
  month = {01},
  day = {16},
  isbn = {978-0-7506-7038-4},
}

@InProceedings{hamel2006,
  author    = {Hamel, Tarek and Mahony, Robert},
  booktitle = {Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006.},
  title     = {Attitude estimation on SO(3) based on direct inertial measurements},
  year      = {2006},
  pages     = {2170-2175},
  keywords  = {Filters;Unmanned aerial vehicles;Costs;Magnetic field measurement;Velocity measurement;Attitude control;Magnetic separation;Angular velocity;Filtering;Measurement units},
  doi       = {10.1109/ROBOT.2006.1642025}
}

@techreport{hartikainen2011,
  author = {Hartikainen, Jouni and Solin, Arno and Särkkä, Simo},
  title = {Optimal filtering with Kalman filters and smoothers},
  subtitle = {A manual for the Matlab toolbox EKF/UKF},
  institution = {Department of Biomedical Engineering and Computational Science. Aalto University School of Science},
  year = {2011},
  month = {09},
}

@article{hartley2013,
  author    = {Hartley, R. and Trumpf, J. and Dai, Y. and Li, H.},
  title     = {Rotation Averaging},
  journal   = {International Journal of Computer Vision},
  number    = {2},
  volume    = {101},
  year      = {2013},
  doi       = {10.1007/s11263-012-0601-0},
}

@book{hofmann2006,
  author    = {Hofmann-Wellenhof, Bernhard and Moritz, Helmut},
  title     = {Physical Geodesy},
  edition   = {2},
  publisher = {Springer Vienna},
  isbn      = {978-3-211-33544-4},
  year      = {2006},
  month     = {10},
  day       = {10},
  doi       = {10.1007/978-3-211-33545-1}
}

@inbook{hughes1986spacecraft17,
  author    = {Hughes, P.C.},
  title     = {Spacecraft Attitude Dynamics},
  isbn      = {9780471818427},
  lccn      = {lc85006556},
  pages     = {17--18},
  year      = {1986},
  publisher = {J. Wiley}
}

@article{huynh2009,
  title     = {Metrics for 3D rotations: Comparison and analysis},
  author    = {Huynh, Du Q},
  journal   = {Journal of Mathematical Imaging and Vision},
  volume    = {35},
  pages     = {155--164},
  year      = {2009},
  publisher = {Springer}
}

@techreport{jekeli2016,
  author = {Jekeli, Christopher},
  institution = {Division of Geodesy and Geomatics Engineering. The Ohio State University},
  title = {Geometric Reference Systems in Geodesy},
  year = {2016},
  month = {08},
  url = {http://hdl.handle.net/1811/77986},
}

@techreport{jia2024,
  author      = {Jia, Yan-Bin},
  institution = {Department of Computer Science. Iowa State University},
  title       = {Quaternions},
  year        = {2024},
  month       = {09},
  day         = {24},
  url         = {https://faculty.sites.iastate.edu/jia/files/inline-files/quaternion.pdf}
}

@article{kalman1960,
  author    = {Kálmán, Rudolf Emil},
  title     = {A New Approach to Linear Filtering and Prediction Problems},
  journal   = {Journal of Basic Engineering},
  volume    = {82},
  number    = {1},
  pages     = {35-45},
  year      = {1960},
  month     = {03},
  issn      = {0021-9223},
  doi       = {10.1115/1.3662552},
  eprint    = {https://www.unitedthc.com/DSP/Kalman1960.pdf}
}

@InProceedings{kuffner2004,
  author    = {Kuffner, J.J.},
  title     = {Effective sampling and distance metrics for 3D rigid body path planning}, 
  booktitle = {IEEE International Conference on Robotics and Automation, 2004. Proceedings. ICRA '04. 2004},
  year      = {2004},
  volume    = {4},
  number    = {},
  pages     = {3993--3998},
  publisher = {IEEE},
  keywords  = {Sampling methods;Path planning;Interpolation;Quaternions;Kinematics;Orbital robotics;Satellites;Proteins;Topology;Geophysics computing},
  doi       = {10.1109/ROBOT.2004.1308895}
}

@InProceedings{kuipers1999,
  author    = {Kuipers, Jack B.},
  title     = {Quaternions and Rotation Sequences},
  booktitle = {Geometry, Integrability and Quantization},
  year      = {1999},
  month     = {09},
  editor    = {Mladenov, Ivaïlo M. and Naber, Gregory L.},
  publisher = {Coral Press},
  address   = {Sofia},
  pages     = {127--143},
  doi       = {10.7546/giq-1-2000-127-143},
  url       = {https://api.semanticscholar.org/CorpusID:116093978}
}

@misc{labbe2015,
  author       = {Labbe Jr, Roger R.},
  title        = {Kalman and Bayesian Filters in Python},
  howpublished = {\url{https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python}},
  year         = {2015},
  month        = {05},
  day          = {23},
  note         = {Accessed: 2024-09-27}
}

@InProceedings{lam2003,
  author    = {Lam, Quang and Stamatakos, Nick and Woodruff, Craig and Ashton, Sandy},
  title     = {Gyro Modeling and Estimation of Its Random Noise Sources},
  booktitle = {AIAA Guidance, Navigation, and Control Conference and Exhibit},
  month     = {08},
  volume    = {5562},
  isbn      = {978-1-62410-090-1},
  doi       = {10.2514/6.2003-5562},
  year      = {2003},
  url       = {https://arc.aiaa.org/doi/abs/10.2514/6.2003-5562},
  eprint    = {https://arc.aiaa.org/doi/pdf/10.2514/6.2003-5562}
}

@article{lambert1945,
  author = {Lambert, Walter D.},
  title = {The International Gravity Formula},
  journal = {American Journal of Science},
  pages = {360--392},
  publisher = {J.D. & E.S. Dana},
  year = {1945},
  url = {http://earth.geology.yale.edu/~ajs/1945A/360.pdf}
}

@book{langel1998,
  author = {Langel, R. A. and Hinze, W. J.},
  title = {The Magnetic Field of the Earth’s Lithosphere: The Satellite Perspective},
  publisher = {Cambridge University Press},
  place = {Cambridge},
  year = {1998},
  month = {12},
  isbn = {9780511629549},
  doi = {10.1017/CBO9780511629549}
}

@inbook{lerner1978,
  author    = {Lerner, Gerald M.},
  title     = {Three-Axis Attitude Determination},
  booktitle = {Spacecraft Attitude Determination and Control},
  chapter   = {12},
  editor    = {Wertz, James, R.},
  pages     = {420--428},
  isbn      = {90-277-0959-9},
  publisher = {Kluwer Academic Publishers},
  year      = {1978}
}

@article{liu2018,
  author    = {Liu, Zhuohua and Liu, Wei and Gong, Xiangyang and Wu, Jin},
  title     = {Simplified Attitude Determination Algorithm Using Accelerometer and Magnetometer with Extremely Low Execution Time},
  journal   = {Journal of Sensors},
  volume    = {2018},
  number    = {1},
  doi       = {10.1155/2018/8787236},
  url       = {https://onlinelibrary.wiley.com/doi/abs/10.1155/2018/8787236},
  abstract  = {Accelerometer-magnetometer attitude determination is a common and vital medium processing technique in industrial robotics and consumer electronics. In this paper, we report a novel analytic attitude solution to the accelerometer-magnetometer combination in the sense of Wahba’s problem. The Davenport matrix is analytically given and its eigenvalues are computed. Through derivations, the eigenvalues are simplified to very short expressions. Then, the corresponding eigenvectors are given accordingly via matrix row operations. The system is highly optimized based on the factorization and simplification of the obtained row-echelon form, which makes it computationally fast in practice. In this way, it is named as the fast accelerometer-magnetometer combination (FAMC). Experiments on the correctness and advantages of the proposed solution are conducted. The results show that compared with conventional solutions, the proposed analytic solution is not only correct and accurate, but to our knowledge, the most time efficient as well.},
  year      = {2018}
}

@book{ma2003,
  author    = {Ma, Yi and Soatto, Stefano and Košecká, Jana and Sastry, S. Shankar},
  title     = {An Invitation to 3-D Vision: From Images to Geometric Models},
  series    = {Interdisciplinary Applied Mathematics},
  year      = {2003},
  month     = {11},
  edition   = {1},
  publisher = {Springer New York, NY},
  isbn      = {978-0-387-00893-6},
  doi       = {10.1007/978-0-387-21779-6}
}

@techreport{madgwick2010,
  author      = {Madgwick, Sebastian O. H.},
  title       = {An efficient orientation filter for inertial and inertial/magnetic sensor arrays},
  institution = {University of Bristol},
  year        = {2010},
  month       = {04},
  day         = {30},
  url         = {https://x-io.co.uk/downloads/madgwick_internal_report.pdf}
}

@InProceedings{mahony2005,
  author    = {Mahony, R. and Hamel, T. and Pflimlin, J.-M.},
  booktitle = {Proceedings of the 44th IEEE Conference on Decision and Control}, 
  title     = {Complementary filter design on the special orthogonal group SO(3)}, 
  year      = {2005},
  pages     = {1477-1484},
  keywords  = {Passive filters;Quaternions;Unmanned aerial vehicles;Attitude control;Costs;Measurement units;Remotely operated vehicles;Mobile robots;Sensor systems;Noise robustness},
  doi       = {10.1109/CDC.2005.1582367},
  url       = {https://folk.ntnu.no/skoge/prost/proceedings/cdc-ecc05/pdffiles/papers/1889.pdf}
}

@article{mahony2008,
  author    = {Mahony, Robert and Hamel, Tarek and Pflimlin, Jean-Michel},
  journal   = {IEEE Transactions on Automatic Control}, 
  title     = {Nonlinear Complementary Filters on the Special Orthogonal Group}, 
  year      = {2008},
  volume    = {53},
  number    = {5},
  pages     = {1203-1218},
  keywords  = {Passive filters;Costs;Measurement units;Noise level;Time varying systems;Additive noise;Filtering;Kinematics;Position measurement;Angular velocity;Attitude estimates;complementary filter;nonlinear observer;special orthogonal group},
  doi       = {10.1109/TAC.2008.923738},
  url       = {https://ieeexplore.ieee.org/document/4608934}
}

@article{markley2007,
  author    = {Markley, Landis and Cheng, Yang and Crassidis, John and Oshman, Yaakov},
  title     = {Averaging Quaternions},
  year      = {2007},
  month     = {07},
  pages     = {1193-1196},
  volume    = {30},
  journal   = {Journal of Guidance, Control, and Dynamics},
  doi       = {10.2514/1.28949}
}

@book{markley2014,
  author    = {Markley, F. Landis and Crassidis, John L.},
  title     = {Fundamentals of Spacecraft Attitude Determination and Control},
  series    = {Space Technology Library},
  year      = {2014},
  month     = {06},
  edition   = {1},
  publisher = {Springer New York, NY},
  isbn      = {978-1-4939-0801-1},
  doi       = {10.1007/978-1-4939-0802-8}
}

@article{mohr2016,
  author    = {Mohr, Peter J. and Newell, David B. and Taylor, Barry N.},
  title     = {CODATA Recommended Values of the Fundamental Physical Constants: 2014},
  journal   = {Journal of Physical and Chemical Reference Data},
  volume    = {45},
  number    = {4},
  pages     = {043102},
  year      = {2016},
  month     = {11},
  abstract  = {This paper gives the 2014 self-consistent set of values of the constants and conversion factors of physics and chemistry recommended by the Committee on Data for Science and Technology (CODATA). These values are based on a least-squares adjustment that takes into account all data available up to 31 December 2014. Details of the data selection and methodology of the adjustment are described. The recommended values may also be found at http://physics.nist.gov/constants.},
  issn      = {0047-2689},
  doi       = {10.1063/1.4954402},
  url       = {https://www.nist.gov/publications/codata-recommended-values-fundamental-physical-constants-2014},
  eprint    = {https://pubs.aip.org/aip/jpr/article-pdf/doi/10.1063/1.4954402/16741741/043102\_1\_online.pdf},
}

@inproceedings{moritz1984,
  author    = {Moritz, Helmut},
  booktitle = {The Geodesist's Handbook 1984},
  editor    = {Tscherning, Carl Christian},
  title     = {Geodetic Reference Systems},
  year      = {1984},
  volume    = {58},
  number    = {3},
  pages     = {388--398},
  publisher = {The International Association of Geodesy},
  url       = {https://office.iag-aig.org/doc/5d7f91ee333a3.pdf}
}

@techreport{ozyagcilar2015,
  author      = {Ozyagcilar, Talat},
  title       = {Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors},
  institution = {Freescale Semiconductor, Inc},
  year        = {2015},
  month       = {11},
  number      = {AN4248},
  note        = {Rev 4.0},
  url         = {https://www.nxp.com/docs/en/application-note/AN4248.pdf},
  address     = {},
  annote      = {},
  type        = {},
}

@techreport{ozyagcilar2015-2,
  author      = {Ozyagcilar, Talat},
  title       = {Accuracy of Angle Estimation in eCompass and 3D Pointer Applications},
  institution = {Freescale Semiconductor, Inc},
  year        = {2015},
  month       = {11},
  number      = {AN4249},
  note        = {Rev 1.0},
  url         = {https://www.nxp.com/docs/en/application-note/AN4249.pdf},
  address     = {},
  annote      = {},
  type        = {},
}

@misc{park2019,
  author    = {Park, Ryan},
  title     = {Planetary Physical Parameters},
  year      = {2019},
  month     = {12},
  day       = {12},
  howpublished = {\url{https://ssd.jpl.nasa.gov/planets/phys_par.html}},
  note      = {Accessed: 2024-09-28}
}

@techreport{pedley2013,
  author      = {Pedley, Mark},
  title       = {Tilt Sensing Using a Three-Axis Accelerometer},
  institution = {Freescale Semiconductor, Inc},
  year        = {2013},
  month       = {},
  number      = {AN3461},
  note        = {Rev 6},
  url         = {https://www.nxp.com/docs/en/application-note/AN3461.pdf},
  address     = {},
  annote      = {},
  type        = {},
}

@inbook{plett1978,
  author    = {Plett, Michael},
  title     = {Magnetic Field Models},
  booktitle = {Spacecraft Attitude Determination and Control},
  chapter   = {Appendix H},
  editor    = {Wertz, James, R.},
  pages     = {779--786},
  isbn      = {90-277-0959-9},
  publisher = {Kluwer Academic Publishers},
  year      = {1978}
}

@article{sabatini2011,
  author = {Sabatini, Angelo Maria},
  title = {Kalman-Filter-Based Orientation Determination Using Inertial/Magnetic Sensors: Observability Analysis and Performance Evaluation},
  journal = {Sensors},
  volume = {11},
  number = {10},
  pages = {9182--9206},
  doi = {10.3390/s111009182},
  url = {https://www.mdpi.com/1424-8220/11/10/9182},
  PubMedID = {22163689},
  issn = {1424-8220},
  abstract = {In this paper we present a quaternion-based Extended Kalman Filter (EKF) for estimating the three-dimensional orientation of a rigid body. The EKF exploits the measurements from an Inertial Measurement Unit (IMU) that is integrated with a tri-axial magnetic sensor. Magnetic disturbances and gyro bias errors are modeled and compensated by including them in the filter state vector. We employ the observability rank criterion based on Lie derivatives to verify the conditions under which the nonlinear system that describes the process of motion tracking by the IMU is observable, namely it may provide sufficient information for performing the estimation task with bounded estimation errors. The observability conditions are that the magnetic field, perturbed by first-order Gauss-Markov magnetic variations, and the gravity vector are not collinear and that the IMU is subject to some angular motions. Computer simulations and experimental testing are presented to evaluate the algorithm performance, including when the observability conditions are critical.},
  year = {2011},
}

@InProceedings{sarabandi2019,
  author    = {Sarabandi, Soheil and Thomas, Federico},
  title     = {Accurate Computation of Quaternions from Rotation Matrices},
  booktitle = {Advances in Robot Kinematics 2018},
  year      = {2019},
  month     = {06},
  day       = {23},
  publisher = {Springer International Publishing},
  address   = {Cham},
  pages     = {39--46},
  abstract  = {The main non-singular alternative to {\$}{\$}3{\backslash}times 3{\$}{\$}proper orthogonal matrices, for representing rotations in {\$}{\$}{\{}{\backslash}mathbb R{\}}^3{\$}{\$}, is quaternions. Thus, it is important to have reliable methods to pass from one representation to the other. While passing from a quaternion to the corresponding rotation matrix is given by Euler-Rodrigues formula, the other way round can be performed in many different ways. Although all of them are algebraically equivalent, their numerical behavior can be quite different. In 1978, Shepperd proposed a method for computing the quaternion corresponding to a rotation matrix which is considered the most reliable method to date. Shepperd's method, thanks to a voting scheme between four possible solutions, always works far from formulation singularities. In this paper, we propose a new method which outperforms Shepperd's method without increasing the computational cost.},
  isbn      = {978-3-319-93188-3},
  editor    = {Lenarcic, Jadran and Parenti-Castelli, Vincenzo},
  doi       = {10.1007/978-3-319-93188-3_5}
}

@techreport{särkkä2007,
  title       = {Notes on Quaternions},
  author      = {Särkkä, Simo},
  institution = {Department of Electrical Engineering and Automation (EEA), Aalto University},
  year        = {2007},
  url         = {https://users.aalto.fi/~ssarkka/pub/quat.pdf}
}

@misc{sola2017quaternion,
  title     = {Quaternion kinematics for the error-state Kalman filter}, 
  author    = {Solà, Joan},
  year      = {2017},
  eprint    = {1711.02508},
  doi       = {10.48550/arXiv.1711.02508},
  url       = {https://arxiv.org/abs/1711.02508}, 
}

@article{somigliana1929,
  author    = {Somigliana, Carlo},
  title     = {Teoria generale del campo gravitazionale dell'ellissoide di rotazione},
  journal   = {Memorie della Società Astronomia Italiana},
  year      = {1929},
  month     = {09},
  volume    = {4},
  pages     = {425--428},
  url       = {https://ui.adsabs.harvard.edu/abs/1929MmSAI...4..425S}
}

@inbook{spence1978,
  author    = {Spence Jr, C. B. and Markley, F. Landis},
  title     = {Attitude Propagation},
  booktitle = {Spacecraft Attitude Determination and Control},
  chapter   = {17},
  editor    = {Wertz, James, R.},
  pages     = {559--566},
  isbn      = {90-277-0959-9},
  publisher = {Kluwer Academic Publishers},
  year      = {1978}
}

@article{shepperd1978,
  author    = {Shepperd, Stanley W.},
  title     = {Quaternion from Rotation Matrix},
  journal   = {Journal of Guidance and Control},
  volume    = {1},
  number    = {3},
  pages     = {223-224},
  year      = {1978},
  doi       = {10.2514/3.55767b}
}

@incollection{shoemake1992,
  author    = {Shoemake, Ken},
  title     = {III.6 - Uniform Random Rotations},
  booktitle = {Graphics Gems III (IBM Version)},
  publisher = {Morgan Kaufmann},
  pages     = {124-132},
  year      = {1992},
  isbn      = {978-0-12-409673-8},
  doi       = {10.1016/B978-0-08-050755-2.50036-1},
  editor    = {Kirk, David},
  abstract  = {A planar rotation can be represented in several ways—for example, as an angle between 0 and 2π or as a unit complex number x + iy = cos θ + i sin θ. Planar rotations combine by summing their angles modulo 2π ; so one way to generate a uniform planar rotation is to generate a uniform angle. This chapter describes a uniformly distributed spatial rotation as one not having a uniformly distributed angle. For a unit quaternion, the ω component is the cosine of half the angle of rotation. When the angle is uniformly distributed between 0 and 2π, the average magnitude of ω will be 2/π 0.6366, which exceeds the correct value for a uniform rotation by a factor of 3/2. It is easy to generate random unit quaternions and, hence, rotations with the correct distribution. Pairs of independent variables with Gaussian distribution can easily be generated using the polar or Box–Muller method, which transforms a point uniformly distributed within the unit disk. The Gaussian generation can be folded into the unit quaternion generation to give an efficient algorithm.}
}

@InProceedings{shuster1978,
  author    = {Shuster, Malcolm D.},
  title     = {Approximate algorithms for fast optimal attitude computation},
  booktitle = {AIAA Guidance and Control Conference},
  address   = {Palo Alto, California},
  year      = {1978},
  month     = {08},
  doi       = {10.2514/6.1978-1249},
  URL       = {https://arc.aiaa.org/doi/abs/10.2514/6.1978-1249},
  eprint    = {https://www.malcolmdshuster.com/Pub_1978b_C_PaloAlto_scan.pdf}
}

@article{shuster1981,
  author    = {Shuster, Malcolm. D. and Oh, S. D.},
  title     = {Three-axis Attitude Determination from Vector Observations},
  journal   = {Journal of Guidance and Control},
  volume    = {4},
  number    = {1},
  pages     = {70--77},
  year      = {1981},
  doi       = {10.2514/3.19717},
  url       = {https://malcolmdshuster.com/Pub_1981a_J_TRIAD-QUEST_scan.pdf}
}

@article{shuster2007,
  author    = {Shuster, Malcolm D.},
  year      = {2007},
  month     = {04-06},
  pages     = {245--257},
  title     = {The optimization of TRIAD},
  volume    = {55},
  number    = {2},
  journal   = {The Journal of the Astronautical Sciences},
  doi       = {10.1007/BF03256523},
  eprint    = {https://www.malcolmdshuster.com/Pub_2007f_J_OptTRIAD_AAS.pdf},
}

@techreport{stm4509,
  author      = {STMicroElectronics},
  title       = {Tilt measurement using a low-g 3-axis accelerometer},
  institution = {STMicroelectronics},
  year        = {2014},
  month       = {06},
  day         = {10},
  number      = {AN4509},
  note        = {Rev 1.0},
  url         = {https://www.st.com/resource/en/application_note/dm00119046.pdf},
  address     = {},
  annote      = {},
  type        = {},
}

@InProceedings{thibaud2017,
  author    = {Michel, Thibaud and Genevès, Pierre and Fourati, Hassen and Layaïda, Nabil},
  booktitle = {2017 IEEE International Conference on Pervasive Computing and Communications (PerCom)}, 
  title     = {On attitude estimation with smartphones}, 
  year      = {2017},
  month     = {03},
  pages     = {267-275},
  keywords  = {Estimation;Smart phones;Magnetometers;Acceleration;Accelerometers;Algorithm design and analysis;Context},
  doi       = {10.1109/PERCOM.2017.7917873},
  url       = {https://inria.hal.science/hal-01376745v2},
}

@article{tiesinga2021,
  author    = {Tiesinga, Eite and Mohr, Peter J. and Newell, David B. and Taylor, Barry N.},
  title     = {CODATA recommended values of the fundamental physical constants: 2018},
  journal   = {Reviews of Modern Physics},
  year      = {2021},
  month     = {Apr--Jun},
  volume    = {93},
  issue     = {2},
  numpages  = {63},
  publisher = {American Physical Society},
  doi       = {10.1103/RevModPhys.93.025010},
  url       = {https://www.nist.gov/publications/codata-recommended-values-fundamental-physical-constants-2018}
}

@article{trimpe2012,
  author    = {Trimpe, Sebastian and D’Andrea, Raffaello},
  journal   = {IEEE Control Systems Magazine},
  title     = {The Balancing Cube: A Dynamic Sculpture As Test Bed for Distributed Estimation and Control},
  year      = {2012},
  volume    = {32},
  number    = {6},
  pages     = {48-75},
  keywords  = {Modular designs;Sensors;Mathematical model;Accelerometers;Computational modeling;Noise measurement;State estimation},
  doi       = {10.1109/MCS.2012.2214135}
}

@article{valenti2015,
  author    = {Valenti, Roberto G. and Dryanovski, Ivan and Xiao, Jizhong},
  title     = {Keeping a Good Attitude: A Quaternion-Based Orientation Filter for IMUs and MARGs},
  journal   = {Sensors},
  year      = {2015},
  volume    = {15},
  number    = {8},
  pages     = {19302--19330},
  doi       = {10.3390/s150819302},
  ISSN      = {1424-8220},
  abstract  = {Orientation estimation using low cost sensors is an important task for Micro Aerial Vehicles (MAVs) in order to obtain a good feedback for the attitude controller. The challenges come from the low accuracy and noisy data of the MicroElectroMechanical System (MEMS) technology, which is the basis of modern, miniaturized inertial sensors. In this article, we describe a novel approach to obtain an estimation of the orientation in quaternion form from the observations of gravity and magnetic field. Our approach provides a quaternion estimation as the algebraic solution of a system from inertial/magnetic observations. We separate the problems of finding the “tilt” quaternion and the heading quaternion in two sub-parts of our system. This procedure is the key for avoiding the impact of the magnetic disturbances on the roll and pitch components of the orientation when the sensor is surrounded by unwanted magnetic flux. We demonstrate the validity of our method first analytically and then empirically using simulated data. We propose a novel complementary filter for MAVs that fuses together gyroscope data with accelerometer and magnetic field readings. The correction part of the filter is based on the method described above and works for both IMU (Inertial Measurement Unit) and MARG (Magnetic, Angular Rate, and Gravity) sensors. We evaluate the effectiveness of the filter and show that it significantly outperforms other common methods, using publicly available datasets with ground-truth data recorded during a real flight experiment of a micro quadrotor helicopter.},
  PubMedID  = {26258778},
  url       = {https://www.mdpi.com/1424-8220/15/8/19302},
}

@article{valenti2016,
  author    = {Valenti, Roberto G. and Dryanovski, Ivan and Xiao, Jizhong},
  journal   = {IEEE Transactions on Instrumentation and Measurement},
  title     = {A Linear Kalman Filter for MARG Orientation Estimation Using the Algebraic Quaternion Algorithm},
  year      = {2016},
  volume    = {65},
  number    = {2},
  pages     = {467--481},
  keywords  = {Quaternions;Kalman filters;Magnetometers;Estimation;Acceleration;Magnetic sensors;Inertial sensors;Kalman filtering;magnetic sensors;orientation estimation;quaternions.;Inertial sensors;Kalman filtering;magnetic sensors;orientation estimation;quaternions},
  doi       = {10.1109/TIM.2015.2498998}
}

@misc{weiss2016,
  author       = {Weisstein, Christopher},
  title        = {geomag},
  year         = {2016},
  month        = {01},
  day          = {15},
  howpublished = {\url{https://github.com/cmweiss/geomag}},
  note         = {Accessed: 2024-09-27}
}

@techreport{welmec2023,
  author = {WELMEC Secretariat},
  institution = {European Cooperation in Legal Metrology},
  title = {WELMEC Guide 2. Guide for Non-automatic Weighing Instruments (NAWI) Automatic Weighing Instruments (AWI) Multi-dimensional Measuring Instruments (MDMI)},
  year = {2023},
  url = {https://www.welmec.org/welmec/documents/guides/2/2023/WELMEC_Guide_2_2023_Guide_for_NAWI_AWI_and_MDMI.pdf}
}

@techreport{wgs84-2014,
  author = {World Geodetic System 1984},
  title = {Department of Defense World Geodetic System 1984: Its Definition and Relationships with Local Geodetic Systems},
  institution = {National Center for Geospatial Intelligence Standards (NCGIS), National Geospatial-Intelligence Agency (NGA)},
  number = {NGA.STND.0036_1.0.0_WGS84},
  note = {Version 1.0.0},
  year = {2014},
  month = {07},
  day = {08},
  url = {https://nsgreg.nga.mil/doc/view?i=4085},
}

@misc{Wiki_SLERP,
  author       = {Wikipedia},
  title        = {SLERP},
  howpublished = {\url{https://en.wikipedia.org/wiki/Slerp}},
  note         = {Accessed: 2020-06-12}
}

@misc{Wiki_Conversions,
  author       = {Wikipedia},
  title        = {Conversion between quaternions and Euler angles},
  howpublished = {\url{https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles}},
  note         = {Accessed: 2024-09-27}
}

@misc{Wiki_DirectionCosine,
  author       = {Wikipedia},
  title        = {Direction Cosine},
  howpublished = {\url{https://en.wikipedia.org/wiki/Direction_cosine}},
  note         = {Accessed: 2024-09-27}
}

@misc{Wiki_Euler,
  author       = {Wikipedia},
  title        = {Euler Angles},
  howpublished = {\url{https://en.wikipedia.org/wiki/Euler_angles}},
  year         = {Accessed: 2024-10-14}
}

@misc{Wiki_Quaternion,
  author       = {Wikipedia},
  title        = {Quaternion},
  howpublished = {\url{https://en.wikipedia.org/wiki/Quaternion}},
  note         = {Accessed: 2024-09-27}
}

@misc{Wiki_Skew,
  author       = {Wikipedia},
  title        = {Skew-symmetric matrix},
  howpublished = {\url{https://en.wikipedia.org/wiki/Skew-symmetric_matrix}},
  note         = {Accessed: 2024-09-28}
}

@misc{Wiki_Versor,
  author       = {Wikipedia},
  title        = {Versor},
  howpublished = {\url{https://en.wikipedia.org/wiki/Versor}},
  note         = {Accessed: 2024-09-28}
}

@misc{williams2024,
  author    = {Park, Ryan},
  title     = {Planetary Fact Sheet - Metric},
  institution = {NASA Goddard Space Flight Center},
  year      = {2024},
  month     = {03},
  day       = {22},
  howpublished = {\url{https://nssdc.gsfc.nasa.gov/planetary/factsheet/}},
  note      = {Accessed: 2024-09-28}
}

@misc{MathWorks_QuaternionMultiplication,
  author       = {Mathworks},
  title        = {quatmultiply},
  institution  = {The MathWorks, Inc.},
  howpublished = {\url{https://www.mathworks.com/help/aerotbx/ug/quatmultiply.html}},
  note         = {Accessed: 2024-09-28}
}

@misc{Wolfram_RotationMatrix,
  author       = {Weisstein, Eric W.},
  title        = {Rotation Matrix},
  institution  = {MathWorld--A Wolfram Web Resource},
  howpublished = {\url{https://mathworld.wolfram.com/RotationMatrix.html}},
  note         = {Accessed: 2024-09-27}
}

@article{wu2018,
  author       = {Wu, Jin and Zhou, Zebo and Gao, Bin and Li, Rui and Cheng, Yuhua and Fourati, Hassen},
  title        = {Fast Linear Quaternion Attitude Estimator Using Vector Observations},
  journal      = {IEEE Transactions on Automation Science and Engineering},
  year         = {2018},
  volume       = {15},
  number       = {1},
  pages        = {307-319},
  keywords     = {Quaternions;Robustness;Eigenvalues and eigenfunctions;Mathematical model;Sensors;Matrix decomposition;Position measurement;Attitude determination;attitude quaternion;eigenvalue problem;pseudoinverse matrix;vector observations;wahba’s problem},
  doi          = {10.1109/TASE.2017.2699221}
}

@article{wu2018-2,
  author       = {Wu, Jin and Zhou, Zebo and Fourati, Hassen and Cheng, Yuhua},
  title        = {A Super Fast Attitude Determination Algorithm for Consumer-Level Accelerometer and Magnetometer},
  journal      = {IEEE Transactions on Consumer Electronics},
  year         = {2018},
  month        = {07},
  volume       = {64},
  number       = {3},
  doi          = {10.1109/TCE.2018.2859625}
}

@article{yun2008,
  author    = {Yun, Xiaoping and Bachmann, Eric R. and McGhee, Robert B.},
  journal   = {IEEE Transactions on Instrumentation and Measurement},
  title     = {A Simplified Quaternion-Based Algorithm for Orientation Estimation From Earth Gravity and Magnetic Field Measurements},
  year      = {2008},
  volume    = {57},
  number    = {3},
  pages     = {638-650},
  keywords  = {Earth;Gravity;Magnetic field measurement;Quaternions;Magnetic sensors;Accelerometers;Magnetometers;Coordinate measuring machines;Computational efficiency;Azimuth;Accelerometers;inertial sensors;magnetic sensors;motion measurement;orientation estimation;quaternions;Accelerometers;inertial sensors;magnetic sensors;motion measurement;orientation estimation;quaternions},
  doi       = {10.1109/TIM.2007.911646}
}

@article{zhao2013,
  author    = {Zhao, Facheng and Wachem, Berend},
  year      = {2013},
  month     = {07},
  pages     = {3091--3109},
  title     = {A novel Quaternion integration approach for describing the behaviour of non-spherical particles},
  volume    = {224},
  journal   = {Acta Mechanica},
  doi       = {10.1007/s00707-013-0914-2}
}

@article{zhou2018,
  author    = {Zhou, Zebo and Wu, Jin and Wang, Jinling and Fourati, Hassen},
  title     = {Optimal, Recursive and Sub-Optimal Linear Solutions to Attitude Determination from Vector Observations for GNSS/Accelerometer/Magnetometer Orientation Measurement},
  journal   = {Remote Sensing},
  volume    = {10},
  year      = {2018},
  number    = {3},
  article-number = {377},
  url       = {https://www.mdpi.com/2072-4292/10/3/377},
  issn      = {2072-4292},
  abstract  = {The integration of the Accelerometer and Magnetometer (AM) provides continuous, stable and accurate attitude information for land-vehicle navigation without magnetic distortion and external acceleration. However, magnetic disturbance and linear acceleration strongly degrade the overall system performance. As an important complement, the Global Navigation Satellite System (GNSS) produces the heading estimates, thus it can potentially benefit the AM system. Such a GNSS/AM system for attitude estimation is mathematically converted to a multi-observation vector pairs matching problem in this paper. The optimal and sub-optimal attitude determination and their time-varying recursive variants are all comprehensively investigated and discussed. The developed methods are named as the Optimal Linear Estimator of Quaternion (OLEQ), Suboptimal-OLEQ (SOLEQ) and Recursive-OLEQ (ROLEQ) for different application scenarios. The theory is established based on our previous contributions, and the multi-vector matrix multiplications are decomposed with the eigenvalue factorization. Some analytical results are proven and given, which provides the reader with a brand new viewpoint of the attitude determination and its evolution. With the derivations of the two-vector case, the n-vector case is then naturally formed. Simulations are carried out showing the advantages of the accuracy, robustness and time consumption of the proposed OLEQs, compared with representative methods. The algorithms are then implemented using the C++ programming language on the designed hardware with a GNSS module, three-axis accelerometer and three-axis magnetometer, giving an effective validation of them in real-world applications. The designed schemes have proven their fast speed and good accuracy in these verification scenarios.},
  doi       = {10.3390/rs10030377}
}
